var express = require('express');
var router = express.Router();

// 引入用户模型
const UserModel = require("../model/UserModel");
const StoryModel = require("../model/StoryModel");

// 添加用户数据
router.post('/user',function(req,res,next) {
  // 获取请求体中的参数
  const {username,password,age} = req.body;
  // 插入数据库
  UserModel.create({username, password, age}).then((data) => {
    res.send(data)
  }).catch((error) => {
    res.send({msg: "添加信息出错！"});
  })
})

// 删除用户数据
router.delete('/user/:userId', function(req,res,next) {
  // 获取动态路由参数
  const {userId} = req.params;
  // 删除数据
  UserModel.deleteOne({_id: userId}).then((data) => {
    res.send({msg: "删除成功！", ...data})
  }).catch((error) => {
    res.send({msg: "删除失败！"});
  })
})

// 修改用户信息
router.put("/user/:userId", function(req,res,next) {
  // 获取请求体中的参数
  const {username, password, age} = req.body;
  // 获取动态路由参数
  const {userId} = req.params;
  // 更新数据
  UserModel.updateOne({_id: userId}, {username,password,age}).then((data) => {
    res.send({msg: "更新成功！", ...data});
  }).catch((error) => {
    res.send({msg: "更新失败"})
  })
})

// 查询用户信息 分页查询
router.get("/user", function(req,res,next) {
  // 获取路由参数（过滤信息）
  const {page,per_page} = req.query;
  // count方法 获取数据的总数量
  UserModel.find().count().then((dataCount) => {
    // find查询，第二个参数数组指定获取的字段，这里是获取username和age以及id (默认具有)，不获取password
    // sort排序，按照age:1(正序),age:-1为倒序
    // skip方法，代表跳过几条数据开始获取
    // limit方法，代表取多少条数据
    UserModel.find({}, ["username", "age"]).sort({age: 1}).skip((page - 1)*per_page).limit(per_page).then((data) => {
      res.send({data, dataCount});
    })
  })
})

// 登录查询用户信息 是否存在
router.post("/login", function(req,res,next) {
  // 获取请求体中的参数
  const {username} = req.body;
  // find查询，第二个参数数组指定获取的字段，这里是获取username和age以及id (默认具有)，不获取password
  // sort排序，按照age:1(正序),age:-1为倒序
  // skip方法，代表跳过几条数据开始获取
  // limit方法，代表取多少条数据
  UserModel.find({username: username}, ["username", "age"]).then((data) => {
    console.log(data)
    if(data.length === 0) {
      res.send({data: [], code: 500, msg: '当前用户不存在！'});
    } else {
      res.send({data: data[0], code: 200, msg: '查询用户信息成功！'});
    }
  })
})

// 给当前登录用户添加 story信息
router.post("/story", function(req,res,next) {
  // 获取请求体中的参数
  const {username, title} = req.body;
  // find查询，第二个参数数组指定获取的字段，这里是获取username和age以及id (默认具有)，不获取password
  // sort排序，按照age:1(正序),age:-1为倒序
  // skip方法，代表跳过几条数据开始获取
  // limit方法，代表取多少条数据
  UserModel.find({username: username}, ["username", "age"]).then((data) => {
    console.log(data)
    if(data.length == 0) {
      let datas = {
        code: 200,
        data: data,
        msg: '没有此用户！'
      }
      res.send(datas)
    }
    if(data.length > 0) {
      StoryModel.create({auther: data[0]._id, title: title, autherId: data[0]._id}).then((data) => {
        res.send(data)
      }).catch((error) => {
        res.send({msg: "添加信息出错！"});
      })
    }
  })
})

/* GET users listing. */
// router.get('/', function(req, res, next) {
//   res.send('respond with a resource');
// });

module.exports = router;
